﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using CapaNegocio;
using CapaEntidades;
using CapaPresentacion.Models;
using System.Data;

namespace CapaPresentacion.Controllers
{
    public class InicioController : Controller
    {
        //
        // GET: /Inicio/

        public ActionResult Index(String id)
        {
            ViewBag.Titulo = "Mantenedor de Articulos con MVC";
            return View();
        }

        [HttpPost]
        public ActionResult Index(ClienteModel model) {
            entCliente c = negCliente.VerificarAcceso(
                                model.strUsuario, model.strPassword);
            if (c != null) {
                return RedirectToAction("Principal", "Inicio");
            }
            ModelState.AddModelError("", "El nombre de Usuario o Passqord es incorrecto");
            return View();            
        }

        public ActionResult Principal() {
            return View(negMarca.ListarMarcas());
        }

        [HttpPost]
        public ActionResult Principal(int marca){
            return RedirectToAction("ListaProductos", "Inicio", marca);
        }

        public ActionResult ListaProductos(int marca){
            return View(negProducto.ListarProductoxMarcas(marca));
        }

        public ActionResult NuevoProducto() {
            return View();
        }

        [HttpPost]
        public ActionResult NuevoProducto(entProducto model){
            int i = negProducto.InsertarProducto(model);
            if (i > 0)
            {
                return RedirectToAction("ListaProductos", "Inicio", 1);
            }
            return View();
        }

        public ActionResult EditarProducto(int idprod) {
            entProducto p = negProducto.BuscarProducto(idprod);
            return View(p);
        }

        [HttpPost]
        public ActionResult EditarProducto(entProducto model)
        {
            int i = negProducto.EditarProducto(model);
            if (i > 0)
            {
                return RedirectToAction("ListaProductos", "Inicio", 1);
            }
            return View();
        }

        public ActionResult VerificarAcceso(FormCollection form)
        {
            String usuario = form["txtusuario"];
            String password = form["txtPassword"];
            entCliente c = negCliente.VerificarAcceso(usuario, password);
            if (c != null)
            {
                Session["cliente"] = c;
                return RedirectToAction("BienvenidaCliente", "Inicio", c);
            }
            return View();   
        }

        public ActionResult BienvenidaCliente(entCliente c) {
            ViewBag.cliente = c;
            return View(negMarca.ListarMarcas());
        }

        public ActionResult AgregarCarrito(FormCollection form)
        {
            DataTable dt2 = (DataTable)Session["Pedido"];
            DataRow fila = dt2.NewRow();
            fila["idProducto"] = Convert.ToInt32(form["txtidprod"].ToString());
            fila["Nombre"] = form["txtName"].ToString();
            fila["Precio"] = Convert.ToInt32(form["txtPrecio"]);
            fila["Cantidad"] = Convert.ToInt32(form["txtcant"]);
            double importe = Convert.ToInt32(form["txtcant"]) * Convert.ToInt32(form["txtPrecio"]); ;
            fila["Importe"] = importe;
            dt2.Rows.Add(fila);
            return RedirectToAction("VerCarrito", "Inicio");
        }

        public ActionResult VerCarrito()
        {
            return View();
        }

    }
}
